package com.yxinsur.imc.business.form;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.yxinsur.imc.common.annotation.Excel;
import com.yxinsur.imc.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;


/**
 * 保单险种详情对象 imc_order_risk
 *
 * @author imc
 * @date 2021-03-18
 */
@Data
@ToString
public class OrderRiskForm
{
    private static final long serialVersionUID = 1L;

    /** ID */
    @ApiModelProperty("ID")
    private Long id;

    /** 产品库ID */
    @ApiModelProperty("产品库ID")
    private Long repoInsId;

    /** 主附险标识 */
    @ApiModelProperty("主附险标识")
    private String riskType;

    /** 投保日期 */
    @ApiModelProperty("投保日期")
    private Date applyDate;

    /** 结算机构ID */
    @ApiModelProperty("结算机构ID")
    private Long settleOrgId;

    /** 机构ID */
    @ApiModelProperty("管理机构ID")
    private Long inputOrgId;

    /** 保障年期类型 */
    @ApiModelProperty("保障年期类型")
    private String coveragePeriodEnum;

    /** 保障期限 */
    @ApiModelProperty("保障期限")
    private String coveragePeriodValue;

    /** 保障期限单位 */
    @ApiModelProperty("保障期限单位")
    private String coveragePeriodUnit;

    /** 缴费年期类型 */
    @ApiModelProperty("缴费年期类型")
    private String chargePeriodEnum;

    /** 缴费期限 */
    @ApiModelProperty("缴费期限")
    private String chargePeriodValue;

    /** 缴费期限单位 */
    @ApiModelProperty("缴费期限单位")
    private String chargePeriodUnit;

    /** 缴费频率类型 */
    @ApiModelProperty("缴费频率类型")
    private String chargeIntervalEnum;

    /** 缴费年龄 */
    @ApiModelProperty("领取年龄")
    private String pensionAge;

    /** 保费 */
    @ApiModelProperty("保费")
    private BigDecimal prem;

    /** 保额 */
    @ApiModelProperty("保额")
    private BigDecimal amount;

    /** 方案ID */
    @ApiModelProperty("方案ID")
    private Long insSchemeId;

    /** 扩展字段1 */
    @ApiModelProperty("扩展字段1")
    private String factor1Value;

    /** 扩展字段2 */
    @ApiModelProperty("扩展字段2")
    private String factor2Value;

    /** 扩展字段3 */
    @ApiModelProperty("扩展字段3")
    private String factor3Value;

    /** 是否自动续保 */
    @ApiModelProperty("是否自动续保")
    private String autoRenewalEnum;

    @ApiModelProperty("保单险种所在年度")
    private Long policyYear;

    @ApiModelProperty("保单险种缴费期数")
    private Long policyNum;
}
